Correct Bundle Identifier for macos using recommended reverse (#419)
authortsteven4 <13596209+tsteven4@users.noreply.github.com>
Wed, 6 Nov 2019 19:52:47 +0000 (12:52 -0700)
committerGitHub <noreply@github.com>
Wed, 6 Nov 2019 19:52:47 +0000 (12:52 -0700)
DNS format.

Build a bundle with the cmake flow on macos.

Delete gpsbabelfe script that messed with LD_LIBRARY_PATH and
then executed gpsbabelfe-bin. This file was obsolete, and
it's existence upset Xcode (entitlement file handling).

gui/CMakeLists.txt
gui/app.pro
gui/gpsbabelfe [deleted file]

index b02affc7a88f7d864570bbebf7b5f7bc2d3bce75..6f62f7eceda9788f99076c5099e950d9b9c75886 100644 (file)
@@ -42,14 +42,17 @@ set(QT_DEFINITIONS ${Qt5Core_DEFINITIONS} ${QT5Gui_DEFINITIONS} ${Qt5Network_DEF
 list(REMOVE_DUPLICATES QT_DEFINITIONS)
 message("QT DEFS: \"${QT_DEFINITIONS}\"\n")
 
-set(QT_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5WebEngineWidgets_LIBRARIES} ${Qt5WebChannel_LIBRARIES} ${LIBUDEV_LIBRARIES} ${LIBS})
+set(QT_LIBRARIES ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Network_LIBRARIES} ${Qt5Xml_LIBRARIES} ${Qt5WebEngineWidgets_LIBRARIES} ${Qt5WebChannel_LIBRARIES})
 #list(REMOVE_DUPLICATES QT_LIBRARIES)
 message("QT LIBS: \"${QT_LIBRARIES}\"\n")
 
 include_directories(AFTER SYSTEM ${QT_INCLUDE_DIRS})
 add_definitions(${QT_DEFINITIONS} -DHAVE_WEBENGINE)
 
-# mac:LIBS += -framework IOKit -framework CoreFoundation
+if (APPLE)
+  find_library(IOKIT_LIBRARIES IOKit)
+  find_library(COREFOUNDATION_LIBRARIES CoreFoundation)
+endif()
 
 if (UNIX AND NOT APPLE)
   find_package(PkgConfig REQUIRED)
@@ -144,8 +147,23 @@ set(HEADERS
   version_mismatch.h
 )
 
-add_executable(${TARGET} ${SOURCES} ${HEADERS} ${RESOURCES})
-set(LIBS ${QT_LIBRARIES} ${LIBUDEV_LIBRARIES})
+if (APPLE)
+  set(MACOSX_BUNDLE_ICON_FILE appicon.icns)
+  set(ICON_FILE images/${MACOSX_BUNDLE_ICON_FILE})
+  set_source_files_properties(${ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION Resources)
+
+  add_executable(${TARGET} MACOSX_BUNDLE ${SOURCES} ${HEADERS} ${ICON_FILE} ${RESOURCES})
+
+  # Info.plist has not been debugged with the cmake flow, it's a bit different than with the qmake flow.
+  set_target_properties(${TARGET} PROPERTIES
+    MACOSX_BUNDLE_GUI_IDENTIFIER org.gpsbabel.${TARGET}
+    MACOSX_BUNDLE_ICON_FILE ${MACOSX_BUNDLE_ICON_FILE}
+  )
+else()
+  add_executable(${TARGET} ${SOURCES} ${HEADERS} ${RESOURCES})
+endif()
+
+set(LIBS ${QT_LIBRARIES} ${LIBUDEV_LIBRARIES} ${IOKIT_LIBRARIES} ${COREFOUNDATION_LIBRARIES})
 list(REMOVE_DUPLICATES LIBS)
 target_link_libraries(${TARGET} ${LIBS})
 
@@ -158,3 +176,4 @@ message("Libs are: \"${LnkLibs}\"\n")
 get_directory_property(IncDirs INCLUDE_DIRECTORIES)
 message("Include Directores are: \"${IncDirs}\"\n")
 
+add_custom_target(package COMMAND ./package_app DEPENDS ${TARGET})
index cb1992bc07ee8090c2d1f421ec07dbf8d3c31bc4..06919ccb28dd36af1b1ae284e450b38ebc547d32 100755 (executable)
@@ -49,6 +49,9 @@ win32-g++ {
 unix:TARGET=gpsbabelfe
 mac:TARGET=GPSBabelFE
 
+# Set QMAKE_TARGET_BUNDLE_PREFIX so we get the correct CFBundleIdentifier in Info.plist
+darwin:QMAKE_TARGET_BUNDLE_PREFIX=org.gpsbabel
+
 FORMS += aboutui.ui
 FORMS += advui.ui
 FORMS += donate.ui
diff --git a/gui/gpsbabelfe b/gui/gpsbabelfe
deleted file mode 100644 (file)
index 28dd8a8..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/sh
-#  $Id: gpsbabelfe,v 1.2 2009-09-14 14:25:14 robertl Exp $
-#  Copyright (C) 2009  S. Khai Mong <khai@mangrai.com>.
-#
-#  This program is free software; you can redistribute it and/or
-#  modify it under the terms of the GNU General Public License as
-#  published by the Free Software Foundation; either version 2 of the
-#  License, or (at your option) any later version.
-#
-#  This program is distributed in the hope that it will be useful,
-#  but WITHOUT ANY WARRANTY; without even the implied warranty of
-#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-#  General Public License for more details.
-#
-#  You should have received a copy of the GNU General Public License
-#  along with this program; if not, write to the Free Software
-#  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
-#  USA.
-#
-
-
-FollowSymLinks()
-{
-    fullpath="$1"
-    while [ -L "$fullpath" ]; do
-       pathdir=`dirname "$fullpath"`
-        linktarget=`/bin/ls -l "$fullpath" | sed -e 's/.* -> //'`
-       d1=`dirname "$linktarget"`
-       linkdir=`cd "$pathdir" && cd "$d1" && pwd`
-       linkfile=`basename "$linktarget"`
-       fullpath=$linkdir/$linkfile
-    done
-    echo $fullpath
-}
-
-finalpath=`FollowSymLinks "$0"`
-LD_LIBRARY_PATH=`dirname "$finalpath"`:${LD_LIBRARY_PATH}
-export LD_LIBRARY_PATH
-
-if [ -x "${finalpath}-bin" ]; then
-    #ldd "${finalpath}-bin"
-    exec "${finalpath}-bin"  "$@"
-fi
-echo "Couldn't find/run gpsbabelfe-bin.  Possible installation issues"
-exit 1
-